/*
使用了图论中的最短路径算法。
*/
#include<stdio.h>
#include<stdlib.h>
#include"hospital.h"
int main()
{

	int n,m=0,min,k;
	Node *a;
	int *c;
	int i,j;
	scanf("%d",&n);
	c=malloc(sizeof(int)*n);//存储每个岛上的居民数
	a=malloc(sizeof(List)*n);
	
	for(i=0;i<n;i++)
	{
		scanf("%d",&c[i]);
		a[i].i=i;
		a[i].next=NULL;
	}
	
	for(i=0;i<n-1;i++)
	{
		int x,y;
		scanf("%d %d",&x,&y);
		x-=1;
		y-=1;
		Node *t;

		t=CreateNode(y);
		Insert(&a[x],t);
		
		t=CreateNode(x);
		Insert(&a[y],t);
	}
	
	min=1000000000;
	for(i=0;i<n;i++)
	{
		m=0;
		for(j=0;j<n;j++)
			m+=Length(a,i,j,n);
		
		if(m<min) 
		{	
			min=m;
			k=i;
		}
	}
	printf("%d\n",k+1);
	return 0;
}
